xen/arm: vgic-v2: Correctly handle RAZ/WI registers
authorJulien Grall <julien.grall@linaro.org>
Mon, 16 Feb 2015 14:50:51 +0000 (14:50 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 19 Feb 2015 16:55:48 +0000 (16:55 +0000)
commit1fefa550274758204a6bf58ea9b9509296197080
tree477ddcf226be821f40e727d5ace46a08a022cd0a
parentfed3569c648f6a13d4dc1ed03d885e9339b85dea
xen/arm: vgic-v2: Correctly handle RAZ/WI registers

All the GICv2 registers are word-accessible. Some them are also
byte-accessible (see GICD_IPRIORITYR*).

Those registers are incorrectly implemented when they should be RAZ. Only
word-access size are currently allowed for them.

To avoid further issues, introduce different label following the access-size
of the registers:
    - read_as_zero_32 and write_ignore_32: Used for registers accessible
    via a word.
    - read_as_zero: Used when we don't have to check the access size.

The latter is used when the access size has already been checked in the
register emulation and/or when the register offset is reserved/implementation
defined.

Note that, only used labels has been introduced.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/vgic-v2.c